SCANNING TUNNELING SPECTROSCOPY

Red text indicates where code should be added

Remove["Global`*"]

Abstract

Off[General::"spell", General::"spell1"];
Needs["Graphics`Arrow`"];
NSub = {c -> 2.99792458 (10^8), e -> (1.6021773/(10^19)), 
          h -> (6.6260755/(10. ^34)), hbar -> (1.05457/(10. ^34)), 
          K -> (1.380658/(10^23)), me -> (9.109389/(10^31)), 
          mu0 -> ((4.  π)/(10^7)), 
          eps0 -> (8.85419/(10^12))};
opt = {PlotRange -> All, AxesOrigin -> {0, 0}, 
          Frame -> True, GridLines -> Automatic, 
          DefaultFont -> {"Times-Roman", 8}, 
          PlotStyle -> {Dashing[{ .0001}], Dashing[{ .0200}], 
              Dashing[{ .0200}], Dashing[{ .0200}], Dashing[{ .0200}], 
              Dashing[{ .0001}]}};

Fermi-Dirac Statistics

Clear[f];
f[En_, EF_, V_, T_] = 
        N[(1/(1 + Exp[((e (En - EF + V))/(K T))])) /. 
            NSub];

tblT = {10. , 100. , 300};

\(\(Fig1x1 = 
Plot[{f[En, 0. , 0. , 
              tblT[[1]]], 
            f[En, 0. , 0. , tblT[[2]]], 
            f[En, 0. , 0. , 
              tblT[[3]]]}, {En, \(- .1\),  .1}, FrameLabel -> {"Energy in eV", "Probability"}, 
          Evaluate[opt]];\)\)

Window opened up for tunnelling by the tip-sample bias voltage

Vb = 1;
Fig1x2 = 
        Plot[f[En, 0, 0, tblT[[3]]] - 
            f[En, 0, Vb, 
              tblT[[3]]], {En, -2, 
            1}, FrameLabel -> {"Energy in eV", "Probability"}, 
          Evaluate[opt]];

Thermal broadening, fc

Clear[fc];
fc[En_, EF_, T_] = 
        f[En, EF, 0, T] (1.  - f[En, EF, 0, T]);

\(\(Fig1x3 = 
        Plot[Evaluate[{fc[En, 0, 
                tblT[[1]]], 
              fc[En, 0, tblT[[2]]], 
              fc[En, 0, 
                tblT[[3]]]}], {En, \(- .1\),  .1}, FrameLabel -> {"Energy in eV", "Convolution"}, 
          Evaluate[opt]];\)\)

File Reading and preparation

SetDirectory["c:\Documents and Settings\pyguest1\my \
documents"]
name = "graphite STS.txt";
clear[tbl1];
tbl1 = 
        ReadList[name, Number, 
          RecordSeparators -> {"\n", ""}];

dim1 = Dimensions[tbl1][[1]];

max1 = Max[tbl1];

min1 = Min[tbl1];

Print["dimension=", dim1];

Print["maximum=", max1];

Print["minimum=", min1];

dif1 = Abs[max1] - Abs[min1];

Print["Difference=", dif1];

mid1 = tbl1[[dim1/2]];

Print["Middle value=", mid1];

Averaging

clear[tbl2, b1, b2];
nav = 5;
tbl2 = tbl1;
Do[
        b1 = tbl2; 
b2 = 
          Table[N[(b1[[i - 1]] + b1[[i]] + b1[[i + 1]])/
                3], 
{i, 2, 
              255}]; 
tbl2 = 
          Join[{b2[[1]]}, b2, {b2[[254]]}], 
{n, 1, 
          nav}];

dim2 = Dimensions[tbl2][[1]];

Print["Dimensions=", dim2];

dif2 = Max[tbl2] - Min[tbl2];

Normalization

Clear[tblI];
tblI = 
        Table[N[(tbl2[[n]] - tbl2[[dim1/2]])/
              dif2], 
{n, 1, dim1, 1}];

dimI = Dimensions[tblI][[1]];

maxI = Max[tblI];

minI = Min[tblI];

difI = Max[tblI] - Min[tblI];

midI = tblI[dimI/2];

Print[maxI];

Print[minI];

Spectroscopic Data

Voltage Information

$I(V)$

Vmax = 2.1;
delV = 2  Vmax/dim1;
clear[tblV];
tblV = 
        Table[(n - dim1/2) 2  Vmax/dim1, {n, 1, dim1}];

tblIV  =  
        Table[{tblV[[n]], Abs[tblI[[n]]]}, {n, 1, 
            dim1}];

xlimit =  .5;
ylimit =  .3;
Fig1x4 = 
        ListPlot[tblIV, 
          PlotRange -> {{-Vmax + xlimit, Vmax - xlimit}, {0, 
                ylimit}}, Frame -> True, PlotJoined -> True, 
          GridLines -> Automatic, 
          DefaultFont -> {"Times-Roman", 8}, 
          FrameLabel -> {"Energy in eV", "I in arb. \
units"}];

$\partial I/\partial V$

c1 = 
        N[Table[(tblI[[n + 5]] - tblI[[n - 5]])/
              delV, 
{n, 1 + 5, 
              dim1 - 5}]];
c2 = {0, 0, 0, 0, 0};
c3 = {0, 0, 0, 0, 0};
tbldIdV = Join[c2, c1, c3];

tbldIdVV = 
        Table[{tblV[[n]], Abs[tbldIdV[[n]]]}, {n, 1, 
            dim1}];

xlimit =  .5;
ylimit = 3. ;
\(\(Fig1x5 = 
        ListPlot[tbldIdVV, 
          PlotRange -> {{\(-Vmax\) + xlimit, Vmax - xlimit}, {0, 
                ylimit}}, Frame -> True, PlotJoined -> True, 
          GridLines -> Automatic, 
          DefaultFont -> {"Times-Roman", 8}, 
          FrameLabel -> {"Energy in eV", "dIdV in arb. units"}];\)\)

$\partial \ln I/\partial \ln V$

dd = Max[tblI]/100;
tbldlnIdlnVV = 
N[
          Table[{tblV[[n]], 
              Abs[tbldIdV[[n]] tblV[[n]]]/(Abs[
                    tblI[[n]] + dd])}, 
{n, 1, 
              dim1}]];

xlimit =  .5;
ylimit = 110. ;
\(\(dlnIdlnVGraphics = 
        ListPlot[tbldlnIdlnVV, 
          PlotRange -> {{\(-Vmax\) + xlimit, Vmax - xlimit}, {0, 
                ylimit}}, Frame -> True, PlotJoined -> True, 
          DefaultFont -> {"Times-Roman", 8}, 
          GridLines -> Automatic, 
          FrameLabel -> {"Energy in eV", "dlogIdlogV in a.u."}];\)\)

Comparison of STS Results

tblx0 = {-3.33, -4.36, -6.05, -7.22, -7.34};
delE = 5.3;
tblx = tblx0 + delE

z0 = 100. ;
tblxGraphics = 
Plot[
          Evaluate[{z0 fc[En, 
                  tblx[[1]], 300. ], 
              z0 fc[En, tblx[[2]], 
                  300. ], 
              z0 fc[En, tblx[[3]], 
                  300. ], 
              z0 fc[En, tblx[[4]], 
                  300. ], 
              z0 fc[En, tblx[[5]], 
                  300. ]}], {En, -2.5, 2.5}, 
          PlotRange -> All, 
DisplayFunction -> 
            Identity];

\(\(Fig1x6 = 
        Show[{dlnIdlnVGraphics, tblxGraphics, 
            Graphics[{Thickness[0.01], 
                Text["t1g", {tblx[[1]], 95}], 
                Text["t1u", {tblx[[2]], 95}], 
                Text["hu", {tblx[[3]], 95}], 
                Text["hg", {tblx[[4]] +  .1, 95}], 
                Text["gg", {tblx[[5]] -  .1, 95}], 
                Line[{{tblx[[1]], 
                      80}, {tblx[[1]], 
                      90}}], Line[{{tblx[[2]], 80}, {tblx[[2]], 
                      90}}], Line[{{tblx[[3]], 80}, {tblx[[3]], 
                      90}}], Line[{{tblx[[4]], 80}, {tblx[[4]], 
                      90}}], Line[{{tblx[[5]], 80}, {tblx[[5]], 
                      90}}]}]}, Frame -> True, 
          DisplayFunction -> $DisplayFunction];\)\)